package org.luxor.cloud.portal.entity;

import com.alibaba.fastjson.annotation.JSONField;
import com.alibaba.fastjson.serializer.ToStringSerializer;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;

import java.util.Date;
import java.io.Serializable;

import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import org.luxor.commons.core.validator.group.UpdateGroup;


/**
 * 应用详情
 *
 * @author administrator @date 2020-10-29 14:27:54
 */
@Data
@TableName("tb_application_details")
@ApiModel(description = "应用详情")
public class ApplicationDetailsEntity implements Serializable {
	private static final long serialVersionUID = 1L;

	@TableId(type = IdType.ID_WORKER)
	@ApiModelProperty(value = "主键Id")
	@JSONField(serializeUsing = ToStringSerializer.class)
	@NotNull(message = "id，不能为空", groups = UpdateGroup.class)
	private Long id;

	@ApiModelProperty(value = "租户ID")
	@JSONField(serializeUsing = ToStringSerializer.class)
	@NotNull(message = "tenantId，不能为空")
	private Long tenantId;

	@ApiModelProperty(value = "应用ID")
	@NotBlank(message = "appId，不能为空")
	private String appId;

	@ApiModelProperty(value = "应用名称")
	@NotBlank(message = "appName，不能为空")
	private String appName;

	@ApiModelProperty(value = "应用类型(0-内部应用；1-普通应用；2-第三方应用)")
	private Byte appType;

	@ApiModelProperty(value = "应用图标")
	private Byte[] icon;

	@ApiModelProperty(value = "应用类别(0-其它；1-企业办公；2-效率工具；3-IT运维)")
	private String category;

	@ApiModelProperty(value = "备注")
	private String remark;

	@ApiModelProperty(value = "排序")
	private Integer orderNum;

	@ApiModelProperty(value = "是否启动(0-禁用；1-启用)")
	private Boolean enabled;

	@ApiModelProperty(value = "逻辑删除(0-未删除；1-删除)")
	private Boolean deleted;

}
